python GUI 与 Swing 相比?
全部标签 几年前,JSR296引入了一个在Swing中创建桌面应用程序的框架。NetBeans提供了与引用实现的紧密集成。我喝了Kool-Aid(r)并创建了许多程序,从简单的单面板统计计算器到大型多窗口、多面板数据分析和模拟程序。此后,JSR已基本被放弃,下一版本的NetBeans(7.1)将不再包含对它的支持。我正在寻找有关如何将这组现有应用程序转换为新框架的建议。似乎有几种可能的选择,包括:NetBeansPlatform.我对此有一些经验。虽然它是非常有能力,但对于某些应用程序来说似乎有点矫枉过正。EclipseRichClientPlatform(RCP)。类似的想法NetBeans平
所有基于Swing/NetBeans的JavaGUI应用程序似乎都具有相同的WM_CLASS值:WM_CLASS(STRING)="sun-awt-X11-XFramePeer","java-lang-Thread"可以通过发出xprop命令并指向窗口来查看此参数。自定义它的实际目的是让类似Mac的停靠栏(例如AWN(以及Ubuntu的Unity))区分应用程序窗口并将它们分组在应用程序的固定启动器图标下。为此,需要在~/.local/share/applications或的.application文件中相应地设置StartupWMClass参数/usr/共享/应用程序。不用说,如果多
我有一些使用Swing/AWT打印功能的代码,我想对其进行单元测试。它使用系统native打印对话框,但有没有办法让JVM拦截它并在单元测试期间用模拟替换它,以便我可以获得要打印的图像副本?我的打印代码很简单,大致如下所示:Printableprintable=getPrintable();PrinterJobprintJob=PrinterJob.getPrinterJob();printJob.setPrintable(printable);if(printJob.printDialog()){try{printJob.print();}catch(PrinterException
尝试单击子菜单中的项目时,很自然地会将鼠标快速滑过其下方的菜单项。Windows和Mac都通过在打开菜单之前设置一个小的延迟来本地处理这个问题。SwingJMenus不处理此问题,鼠标短暂悬停在其上的菜单会在鼠标到达预期的菜单项之前打开。例如,在下图中,如果我尝试选择Item3,但在此过程中我的鼠标短暂地滑过Menu2,Menu1子菜单会在我到达之前消失。有没有人对解决这个问题有任何提示或建议?我的想法是定义一个自定义MenuUI,为其鼠标处理程序添加一个计时器。这里有一些简单的示例代码可以说明我的问题:publicclassThingextendsJFrame{publicThing
关于这个问题有很多问题,但没有一个让我满意的答案;我正在使用Swing编写一个简单的GUI窗口。目前它只包含4个按钮,其中一个是打开文件选择器。当我使用VisualVMMonitoring工具查看内存使用情况时,结果如下所示:memoryusagehttp://img17.imageshack.us/img17/3589/8txc.png当我点击按钮时出现了第一条派克,然后我什么也没做。空闲应用程序消耗10M/min(当它什么都不做时?)这正常吗?因为我必须用图像做一个类似测验的小程序,所以我应该在每次切换到下一个问题时调用System.gc()以避免(可能是巨大的?)内存用法?
如何使JComboBox的“下拉”(或“弹出”,我不知道它是怎么叫的)在屏幕上变高?默认情况下,当我打开JComboBox时,我看到29个项目中的7个,然后我需要滚动。我应该怎么做才能看到这32个项目中的15个?(或者,如果下拉菜单的高度为150像素,我如何才能将其设为300像素?)我已经阅读了关于JComboBox和JavaDoc的Sun教程,但我一定是忽略了要调用的方法。 最佳答案 您正在寻找setMaximumRowCount方法。JComboBoxtutorial有一些示例代码展示了它的实际效果。
这个问题在这里已经有了答案:JavaOSXLionSetapplicationnamedoesn'twork(6个答案)关闭6年前。我的SwingJava应用程序在MacOSX上运行良好,但它在Mac标题栏中的标题显示为"org.classes.MainClass",这是我的应用程序的主类路径。p>我可以通过代码或在我的java应用程序的list文件中更改此标题吗?
我正在使用AspectJ来跟踪对图形类的调用。到目前为止,我已经使用了一组预先编织的javax.swing.*类,并且在加载时我通过使用-Xbootclasspath/p开关告诉JVM使用这些编织的类而不是来自JRE的类。我想切换到加载时间编织模式。谁能帮助我如何在加载时编织javax.swing。我已经在网上搜索过,但我仍然不知道该怎么做。我知道默认情况下,AspectJ加载时编织器不会编织java.*和javax.*类。有人建议使用-Xset:weaveJavaPackages=true,weaveJavaxPackages=true在aop.xml中,但这些都没有帮助,因为jav
有没有办法将swing组件(例如JPanel)的所有实例的默认背景绘制更改为使用渐变背景绘制?或者我是否需要创建一个使用渐变绘制的JPanel扩展,然后在我的应用程序中到处使用它而不是JPanel? 最佳答案 恕我直言,将Swing组件子类化并覆盖其paintComponent方法来进行渐变绘制会更容易。然后,如您所说,在整个应用程序中使用此自定义组件。使用UI属性可能会很棘手,因为它们在所有LaF中可能不一致。 关于java-Swing组件默认渐变背景,我们在StackOverflow
当向swing发送更新请求时(系统触发,例如由于调整大小或被另一个窗口阻塞,或者应用程序触发,例如通过调用repaint()方法),这个请求实际上是如何处理的?RepaintManager中发生了什么过程? 最佳答案 来自您的评论:Doyouknowwhathappensinpeer.getGraphics()?这取决于使用哪个对等实现。一个实现是WComponentPeer(在Windows上运行时使用),它似乎使用两种方法来获取Graphics对象:如果组件有一个类型为Window的父级(或者本身就是一个),而父级又有一个关联的